Network-provided content, such as Internet web pages or media content such as video, pictures, music, and the like, are typically served to end users via networked computer systems. End user requests for the network content are processed and the content is responsively provided over various network links. These networked computer systems can include origin hosting servers which originally host network content of content creators or originators, such as web servers for hosting a news website. However, these computer systems of individual content creators can become overloaded and slow due to frequent requests of content by end users.
Content delivery systems have been developed which add a layer of caching between the origin servers of the content providers and the end users. The content delivery systems (or content delivery networks), typically have one or more content delivery nodes distributed across a large geographic region to provide faster and lower latency access to the content for the end users. When end users request content, such as a web page, which is handled through a content delivery node, the content delivery node is configured to respond to the end user requests instead of the origin servers. In this manner, a content delivery node can act as a proxy for the origin servers.
Content of the origin servers can be cached into the content delivery nodes, and can be requested via the content delivery nodes from the origin servers of the content originators when the content has not yet been cached. Content delivery nodes usually cache only a portion of the original source content rather than caching all content or data associated with an original content source. The content delivery nodes can thus maintain only recently accessed and most popular content as cached from the original content sources. Thus, content delivery nodes exchange data with the original content sources when new or un-cached information is requested by the end users or if something has changed in the original content source data.
However, maintaining synchronized content across many content delivery nodes can be difficult. For example, adding new content or purging old content can become out of sync due to network latencies, network failures, node failures, or other events. Thus, end user devices cannot receive proper or current content responsive to content requests when content delivery nodes contain content which is not properly synchronized or coherent.
Overview
Systems, methods, and software for operating a content delivery system are provided herein. In one example, a method includes, in a first content delivery node, receiving a purge instruction to purge first content stored in the first content delivery node and responsively purging the first content. Responsive to purging the first content, the method includes transferring a content request for delivery to a second content delivery node, where the content request comprises a request for second content to replace the first content and a revision indicator of the first content. Responsive to the content request, the method includes receiving the second content for storage in the first content delivery node.
In another example, one or more non-transitory computer readable media having stored thereon program instructions executable by one or more content delivery nodes is provided. When executed by the one or more content delivery nodes, the program instructions direct the one or more content delivery nodes to, in a first content delivery node, receive a purge instruction to purge first content stored in the first content delivery node and responsively purge the first content. Responsive to purging the first content, the program instructions direct the one or more content delivery nodes to, in the first content delivery node, transfer a content request for delivery to a second content delivery node, where the content request comprises a request for second content to replace the first content and a revision indicator of the first content. Responsive to the content request, the program instructions direct the one or more content delivery nodes to, in the first content delivery node, receive the second content for storage in the first content delivery node.
In another example, a content delivery system is provided. The content delivery system includes a first content delivery node configured to receive a purge instruction to purge first content stored in the first content delivery node and responsively purge the first content. Responsive to purging the first content, the first content delivery node is configured to transfer a content request for delivery to a second content delivery node, where the content request comprises a request for second content to replace the first content and a revision indicator of the first content. Responsive to the content request, the first content delivery node is configured to receive the second content for storage in the first content delivery node.